/**********************************************************************************************************************
 *
 * Project:    mGameEngine
 * File:       environment.h
 * Author:     karooolek
 * Created on: Jun 23, 2009
 *
 **********************************************************************************************************************/

#ifndef ENVIRONMENT_H_
#define ENVIRONMENT_H_

#include "drawable.h"
#include "gpuprogram.h"
#include "texture.h"

namespace mGameEngine
{
namespace Graphics
{

/**
 * Environment.
 * Environment is ???
 */
class Environment : public Drawable
{
protected:
    /**
     * Environment map.
     */
    const Texture *_environmentMap;

public:
    /**
     * Create empty environment.
     */
    Environment();

    /**
     * Create environment with specified environment map.
     * @param environmentMap environment map.
     */
    Environment(const Texture *environmentMap);

    /**
     * Destroy environment.
     */
    virtual ~Environment();

    /**
     * Get environment map.
     * @return environment map.
     */
    const Texture *getEnvironmentMap() const
    {
        return _environmentMap;
    }

    /**
     * Set environment map.
     * @param environmentMap environment map.
     */
    void setEnvironmentMap(const Texture *environmentMap)
    {
        _environmentMap = environmentMap;
    }

    /**
     * Draw environment.
     */
    void draw() const;
};

}
}

#endif // ENVIRONMENT_H_
